REM MONEYBAGS by Becky F. Matthews REM This is a freely-distributable PUBLIC DOMAIN program. DEFINT a-z DEFLNG k DEFLNG score DIM mon(90) DIM tax(90) DIM sc(500) sx=0:cx=140:k=TIMER:score=0:c$="":level=1 SAY "" RANDOMIZE TIMER SCREEN 1, 320, 200, 2, 1 WINDOW 2,"",(0,0)-(311,185),20,1 WINDOW 1,"Government Invasion Part I",(0,0)-(311,185),20,1 PALETTE 0,0,0,0 PALETTE 1,1,1,1 PALETTE 2,1,1,0.13 PALETTE 3,1,0,0 CLS SAY "MEHEHTTTIY IYIYLL JJOHIYIYSTTIYIYKK IYIYNN POHOHRTTAA DUWEHEH." b$=" Joystick in Porta 2." GOSUB printsay GOSUB gamescreen GOSUB objects main: GOSUB moneystart GOSUB starpage GOSUB moneypage GOSUB noise GOSUB move GOSUB taxstart GOSUB starpage GOSUB taxpage GOSUB noise GOSUB move GOSUB bothstart GOSUB starpage GOSUB bothpage GOSUB noise GOSUB move IF level = 4 THEN GOTO win level = level + 1 b$=" Livello "+STR$(level) GOSUB printsay LOCATE 13,30 PRINT "Livello";level GOTO main gamescreen: c=1 FOR x = 1 TO 29 STEP 2 LINE(70+x,20+x)-(220-x,160-x),c,b c=c+1:IF c > 3 THEN c = 1 SOUND x*100,0.1 NEXT FOR t = 1 TO 30 x=INT(RND*90)+100 y=INT(RND*80)+50 PSET(x,y),1 NEXT COLOR 2,3 LOCATE 10,30 PRINT "MONEYBAGS" COLOR 2,0 LOCATE 13,30 PRINT "Livello";level SOUND 300,1 RETURN objects: WINDOW OUTPUT 2 DIM bags$(130) RESTORE bagsdata FOR n = 1 TO 130 READ a bags$ = bags$ + CHR$(a) NEXT OBJECT.SHAPE 1,bags$ OBJECT.X 1,10 OBJECT.Y 1,10 OBJECT.ON 1 GET(10,10)-(40,30),mon OBJECT.CLOSE 1 DIM taxman$(130) RESTORE taxmandata FOR n = 1 TO 130 READ a taxman$ = taxman$ + CHR$(a) NEXT OBJECT.SHAPE 2,taxman$ OBJECT.X 2,10 OBJECT.Y 2,10 OBJECT.ON 2 GET(10,10)-(30,30),tax OBJECT.CLOSE 2 WINDOW 1 DIM sight$(60) RESTORE sightdata FOR n = 1 TO 60 READ a sight$ = sight$ + CHR$(a) NEXT OBJECT.SHAPE 3,sight$ OBJECT.X 3,140 OBJECT.Y 3,134 OBJECT.ON 3 RETURN moneystart: SAY "PREHNDIHIH TUWTTIHIH-IY SAA/C/C/HIY-/C/HEH-PPUWOHIYIY." SAY "AA/C/C/HIYAAPPAA IY SOHOHLDHIYIY.":b$=" Acchiappa i soldi ." GOSUB printsay RETURN taxstart: SAY "AADEHEHSSOHOH DEHEHVIY EHEHVIYIYTTAAREHEH-IY FUWNZIYOHNAARIY DEHLLAA FIYNAANZZAA." SAY "EHVIYTTAA-IY FIYNAANZZIYEHEHRIYIY.":b$=" Evita i Finanzieri." GOSUB printsay RETURN bothstart: SAY "PREHNDIY-IY SAA/C/C/HIY PIYEHNIY DIY SOHLDIY EHVIYTTAANDOH IY FIYNAANZZIYEHEHRIYIY." SAY "PREHNDIY-IY SOHLDIY,NOHN-IY FIYNAANZZIYEHRIYIY.":b$=" Prendi i soldi non i Finanzieri." GOSUB printsay RETURN move: FOR t = 1 TO 2 FOR x = 10 TO 260 STEP 90 FOR y = 105 TO 1 STEP -3 WINDOW OUTPUT 2 GET(x,y)-(90+x,y+80),sc WINDOW OUTPUT 1 PUT(100,50),sc,PSET SOUND y*5+300,0.1 GOSUB joystick NEXT FOR y = 1 TO 41 GET(100,51)-(190,127),sc PUT(100,54),sc,PSET LINE(100,50)-(190,53),0,bf SOUND y*5+300,0.1 GOSUB joystick NEXT NEXT NEXT RETURN starpage: WINDOW OUTPUT 2 CLS FOR star = 1 TO 100 x=INT(RND*311):y=INT(RND*185) PSET(x,y),1 NEXT RETURN moneypage: s=0 FOR n = 1 TO 3 FOR t = 1 TO 11 x=t*30+10 y=INT(RND*8)*20+10 PUT(x-30,y),mon,PSET NEXT NEXT RETURN taxpage: s=level-1 FOR t = 1 TO 11 x=t*23+10 FOR n = 1 TO (0+level) y=INT(RND*7)*25+10 PUT(x-23,y),tax,PSET NEXT NEXT RETURN bothpage: s=level FOR t = 1 TO 11 x=t*30+10 FOR n = 1 TO (3+level) y=INT(RND*7)*25+10 b=INT(RND*100) IF b > 40 THEN PUT(x-30,y),tax,PSET ELSE PUT(x,y),mon,PSET END IF NEXT NEXT RETURN printsay: 'IF c$="" THEN c$=b$ 'r$=TRANSLATE$(c$) 'SAY(r$) FOR x=1 TO 39 LOCATE 2,x SOUND x*50,0.1 PRINT LEFT$(b$,40-x) NEXT 'c$="" RETURN noise: FOR n=1 TO 5 FOR p=800 TO 200 STEP -50 SOUND p,0.2 NEXT NEXT RETURN joystick: IF STICK(2)=1 THEN GOSUB right IF STICK(2)=-1 THEN GOSUB left IF STICK(2)=0 AND sx=1 THEN GOSUB right IF STICK(2)=0 AND sx=2 THEN GOSUB left p = POINT(cx+3,125) IF TIMER>k+0.5 THEN IF p = 3 OR p = 2 THEN GOSUB score END IF RETURN right: p = POINT(cx+3,125) IF TIMER>k+0.5 THEN IF p = 3 OR p = 2 THEN GOSUB score END IF cx=cx+4 IF cx>182 THEN cx=182 IF cx<103 THEN cx=103 OBJECT.X 3,cx sx=1 RETURN left: p=POINT(cx+3,125) IF TIMER>k+0.5 THEN IF p = 3 OR p = 2 THEN GOSUB score END IF cx=cx-4 IF cx<103 THEN cx=103 IF cx>182 THEN cx=182 OBJECT.X 3,cx sx=2 RETURN score: CIRCLE(cx+3,125),4,1 LOCATE 22,12 IF p = 2 THEN score = score + 1:SOUND 900,1 IF p = 3 THEN score = score - 5:SOUND 500,1 PRINT "SOLDI = $";score*100; IF score < 0 AND s>0 THEN RETURN jail ELSEIF score <0 THEN GOTO gameover:'restart END IF k=TIMER RETURN restart: FOR t=1 TO 100:NEXT t:b$=" ":GOSUB printsay SAY "AAIY PEHRSOH TROHPPOH PREHSTOH TUWTTIY-IY SOHLDIY. PROHVAA-AAN/COHOHRAA." SAY "PROHVAA-AAN/COHOHRAA.":b$=" Prova ancora." IF s=0 THEN GOSUB printsay sx=0:cx=140:k=TIMER:score=0:c$="":level=1 CLS OBJECT.X 3,cx GOSUB gamescreen: FOR t=1 TO 100:NEXT t:b$=" ":GOSUB printsay GOTO main STOP jail: FOR t = 1 TO 2 FOR n = 400 TO 100 STEP - 25 SOUND n,1 NEXT NEXT FOR t=1 TO 100:NEXT t:b$=" ":GOSUB printsay SAY "SEHIY AAL VEHRDEHEH,EH DEHVIYIY-IY SOHLDIY AAL FIYNAANZZIYEHREHEH." SAY "SEHIY AAL VEHRDEHEH.":b$=" Sei al verde." GOSUB printsay SAY "/CAATTIYVEHLLOH. EHEH-BIYRIYIY/C/C/HIYIYNOHOH. SEHEHIY FUWRBOHOH.":b$=" Cattivello - Biricchino - sei furbo ." GOSUB printsay SAY "LAA FIYNAANZZAA TIY SEH/CUWEHSTRAA LAA /CAASAA,LAA MAA/C/C/HIYNAA-EH TUWTTIYIY-IY TUWOHIYIY AAVEHRIYIY." SAY "AARRIYVEHDEHEHRCHIYIY.":b$=" Arrivederci." GOSUB printsay SAY "DEHVIYIY AANDAAREH-IYN PRIYJJOHOHNEHEH." SAY "VAAIY IYN PPRRIYJJOHOHNEHEH." FOR x = 10 TO 300 STEP 35 LINE(x,0)-(x+10,185),1,bf NEXT gameover: LOCATE 2,6 SAY "PREHMIYIY EHSS PEHR JIYOH/CAAREHEH AAN/COHOHRAAAA":PRINT "Premi S per giocare ancora " a$="" WHILE a$="" a$= INKEY$ WEND IF UCASE$(a$)="S" THEN GOTO restart SYSTEM END win: CLS c=1 FOR x = 1 TO 80 STEP 2 LINE(x,x)-(311-x,185-x),c,b c=c+1:IF c>3 THEN c=1 SOUND x*80,0.5 NEXT LOCATE 12,16 SAY "AAIY VIYNTOHOH TUW.":PRINT "Hai vinto ." GOTO gameover bagsdata: DATA 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 2, 0, 0, 0, 24 DATA 0, 0, 0, 13, 0, 24, 0, 3 DATA 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 3, 7,192, 0, 1,252 DATA 64, 0, 0,120, 0, 0, 3,207 DATA 0, 0, 6, 1,128, 0, 14, 79 DATA 192, 0, 14, 1,192, 0, 15,201 DATA 192, 0, 6, 1,128, 0, 3,207 DATA 0, 0, 0,252, 0, 0, 0, 0 DATA 0, 0 taxmandata: DATA 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 2, 0, 0, 0, 24 DATA 0, 0, 0, 13, 0, 24, 0, 3 DATA 0, 0, 0,252, 0, 0, 0,104 DATA 0, 0, 0, 48, 0, 0, 7,223 DATA 0, 0, 14,219,128, 0, 14,219 DATA 128, 0, 14,221,128, 0, 12,253 DATA 128, 0, 13,255,128, 0, 1,206 DATA 0, 0, 1,206, 0, 0, 1,206 DATA 0, 0, 7,207,128, 0, 0,204 DATA 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 7,223, 0, 0, 14,219 DATA 128, 0, 14,219,128, 0, 14,221 DATA 128, 0, 12,253,128, 0, 1,254 DATA 0, 0, 1,206, 0, 0, 1,206 DATA 0, 0, 1,206, 0, 0, 7,207 DATA 128,128 sightdata: DATA 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 2, 0, 0, 0, 16 DATA 0, 0, 0, 7, 0, 25, 0, 3 DATA 0, 0, 2, 0, 5, 0, 8,128 DATA 5, 0, 2, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0,255 DATA 0, 0, 0, 0